Micron Document
Deavmi's coding shack


Commit f314f77b5fc4c9ea3fe726d6dde1a5cdafcc5b30


Parents : 4adbfe3
Author : Tristan Brice Velloza Kildaire <deavmi@redxen.eu>
Date : 2026-04-20T00:57:25+02:00

Added mais

Changes

8 files changed, 79 insertions(+), 12 deletions(-)

M go.mod +4 -3
M go.sum +8 -8
M main.go +31 -1

Diff

diff --git a/examples/a.service b/examples/a.service
index e69de29..4816ebb 100644
--- a/examples/a.service
+++ b/examples/a.service
@@ -0,0 +1,4 @@
+[service]
+name = a
+
+depends = b,x
\ No newline at end of file

diff --git a/examples/b.service b/examples/b.service
index e69de29..2f23201 100644
--- a/examples/b.service
+++ b/examples/b.service
@@ -0,0 +1,4 @@
+[service]
+name = b
+
+depends = c
\ No newline at end of file

diff --git a/examples/c.service b/examples/c.service
index e69de29..05d84ef 100644
--- a/examples/c.service
+++ b/examples/c.service
@@ -0,0 +1,3 @@
+[service]
+name = c
+

diff --git a/filespec.txt b/filespec.txt
new file mode 100644
index 0000000..83313f8
--- /dev/null
+++ b/filespec.txt
@@ -0,0 +1,17 @@
+A service file is defined as:
+
+1. Any file found within one of the **configured search paths**
+2. Any file that ends in `.service`
+
+Once these two are met then the next step is to parse such a file.
+The service files take the form of an INI-encoded file and look
+something like the following:
+
+```ini
+[section name]
+key1=value1
+key2=value2
+
+[section name 2]
+key1=value1
+```
\ No newline at end of file

diff --git a/go.mod b/go.mod
index 69898dd..3cd17c5 100644
--- a/go.mod
+++ b/go.mod
@@ -2,9 +2,10 @@ module new.git.deavmi.assigned.network/deavmi/worcesterinit.git
go 1.25.8
-require new.git.deavmi.assigned.network/deavmi/glog.git v0.0.0-20260408144354-00a75b9c2b69
+require new.git.deavmi.assigned.network/deavmi/glog.git v0.0.1
require (
- new.git.deavmi.assigned.network/deavmi/go-niknaks.git v0.0.12 // indirect
- new.git.deavmi.assigned.network/deavmi/go-tuples.git v0.0.0-20260408125908-2e6fb51d21bf // indirect
+ new.git.deavmi.assigned.network/deavmi/go-niknaks.git v0.0.15
+ new.git.deavmi.assigned.network/deavmi/go-tuples.git v1.0.0 // indirect
+ new.git.deavmi.assigned.network/deavmi/ini.git v0.0.4
)

diff --git a/go.sum b/go.sum
index 2e9ad19..9bc6df2 100644
--- a/go.sum
+++ b/go.sum
@@ -1,8 +1,8 @@
-new.git.deavmi.assigned.network/deavmi/glog.git v0.0.0-20260408144354-00a75b9c2b69 h1:OtJwACwEsAopCbneP2PyVktTxe+Zf7VBICdybQcsgSg=
-new.git.deavmi.assigned.network/deavmi/glog.git v0.0.0-20260408144354-00a75b9c2b69/go.mod h1:OhRUmiu90fPhb2s4nCCyNLtvSf1cQWz2OicVFgoKXio=
-new.git.deavmi.assigned.network/deavmi/go-assertions.git v0.0.0-20260223174729-e9b738463486 h1:Y0RIGifKbF3EL0dYd7V1vctdB/PfB2prTfJ6k76/juA=
-new.git.deavmi.assigned.network/deavmi/go-assertions.git v0.0.0-20260223174729-e9b738463486/go.mod h1:5SS262r5xb2YqzOYSIOhpZ8cL/tRF4vYl5lvaVL+evU=
-new.git.deavmi.assigned.network/deavmi/go-niknaks.git v0.0.12 h1:nG/IgYcacNJg3EO/V/exKdAevV5qM/tp1D2TR/MqJEY=
-new.git.deavmi.assigned.network/deavmi/go-niknaks.git v0.0.12/go.mod h1:Dx7sEGSj9Khi1x0z+spzyKZMCIkLXCJEiNtWxgMbXhM=
-new.git.deavmi.assigned.network/deavmi/go-tuples.git v0.0.0-20260408125908-2e6fb51d21bf h1:NTEzVv+BihUPG5FIzoMi13BjV7ZYGSYhp4gA6I/aAfw=
-new.git.deavmi.assigned.network/deavmi/go-tuples.git v0.0.0-20260408125908-2e6fb51d21bf/go.mod h1:iOjy/c4BGqXWsEXWvrscX06flHJ/NvAxPOsEC/asLRg=
+new.git.deavmi.assigned.network/deavmi/glog.git v0.0.1 h1:lglnwc+sVBKEacttPj2VUKKAXF2gzCtiDe3MRTNGSi0=
+new.git.deavmi.assigned.network/deavmi/glog.git v0.0.1/go.mod h1:nwXj8MbNA84Dr00Duqop8SFoMlFscbMQ/v/17D/nKIs=
+new.git.deavmi.assigned.network/deavmi/go-niknaks.git v0.0.15 h1:/EAPQlkfqtuQhl4Zhl1aVQjk3VsJ+z28VJur6kfRTCo=
+new.git.deavmi.assigned.network/deavmi/go-niknaks.git v0.0.15/go.mod h1:Dx7sEGSj9Khi1x0z+spzyKZMCIkLXCJEiNtWxgMbXhM=
+new.git.deavmi.assigned.network/deavmi/go-tuples.git v1.0.0 h1:/Kf5IvOuB+Eym84dtoUzKr8NmbHd2tg45QGspbLAm7Y=
+new.git.deavmi.assigned.network/deavmi/go-tuples.git v1.0.0/go.mod h1:iOjy/c4BGqXWsEXWvrscX06flHJ/NvAxPOsEC/asLRg=
+new.git.deavmi.assigned.network/deavmi/ini.git v0.0.4 h1:J9K32lUN/xMHxoF30Su2YzH7WSY4kNqqwe+t89+aR1I=
+new.git.deavmi.assigned.network/deavmi/ini.git v0.0.4/go.mod h1:qKwURPC2922Kho8vQ4ceDtFilxFGkfykLTyVvH5p6FM=

diff --git a/main.go b/main.go
index eef128d..90d6b23 100644
--- a/main.go
+++ b/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "bytes"
"fmt"
filesystems "io/fs"
"os"
@@ -9,6 +10,7 @@ import (
"new.git.deavmi.assigned.network/deavmi/glog.git/std/consts"
stdlogger "new.git.deavmi.assigned.network/deavmi/glog.git/std/logger"
"new.git.deavmi.assigned.network/deavmi/go-niknaks.git/types"
+ ini "new.git.deavmi.assigned.network/deavmi/ini.git/src"
)
var l *stdlogger.StdLogger = setup()
@@ -83,7 +85,35 @@ func fileToUnit(p string) (Unit, error) {
}
c = c + 1 // Rob Kike needs to really stfu with this language being so anal and all
- return Unit{path: p}, nil
+ // parse the ini file
+ iniP, e := ini.NewParser(bytes.NewReader(dest))
+ if e != nil {
+ return types.Zero[Unit](), fmt.Errorf("There was an error initializing the INI parser: %v", e)
+ }
+
+ cfg, e := iniP.Parse()
+ if e != nil {
+ return types.Zero[Unit](), fmt.Errorf("There was an error parsing the service file at '%s': %v", p, e)
+ }
+ l.Info("Parsed '%s' to: %v", p, cfg)
+
+ unitOut, e := configToUnit(cfg)
+ if e != nil {
+ return types.Zero[Unit](), e
+ }
+ l.Info("Parsed '%s' to unit descriptor: %v", p, unitOut)
+
+ unitOut.path = p // set path
+
+ return unitOut, nil
+}
+
+func configToUnit(cfg *ini.Ini) (Unit, error) {
+ // required fields
+ name, e := cfg.GetSection("name")
+
+ // optional
+ name, e := cfg.GetSection("depends")
}
// directories to scan for unit files when starting up

diff --git a/manager.go b/manager.go
index 50ee7fd..2a5deb4 100644
--- a/manager.go
+++ b/manager.go
@@ -1,6 +1,14 @@
package main
type Manager struct {
+ staging []LoadedUnit
+
+ pending []LoadedUnit
+
+ running []LoadedUnit
+}
+
+type LoadedUnit struct {
}
func (m *Manager) Load(u Unit) error {

Served by rngit 1.5.0 - Generated in 0.12s